home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / gtk-2.0 / demo / pickers.c < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  2.4 KB  |  74 lines

  1. /* Pickers 
  2.  *
  3.  * These widgets are mainly intended for use in preference dialogs.
  4.  * They allow to select colors, fonts, files and directories.
  5.  */
  6.  
  7. #include <gtk/gtk.h>
  8.  
  9. GtkWidget *
  10. do_pickers (GtkWidget *do_widget)
  11. {
  12.   static GtkWidget *window = NULL;
  13.   GtkWidget *table, *label, *picker;
  14.  
  15.   if (!window)
  16.   {
  17.     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  18.     gtk_window_set_screen (GTK_WINDOW (window),
  19.                            gtk_widget_get_screen (do_widget));
  20.     gtk_window_set_title (GTK_WINDOW (window), "Pickers");
  21.    
  22.     g_signal_connect (window, "destroy",
  23.                       G_CALLBACK (gtk_widget_destroyed),
  24.                       &window);
  25.     
  26.     gtk_container_set_border_width (GTK_CONTAINER (window), 10);
  27.  
  28.     table = gtk_table_new (4, 2, FALSE);    
  29.     gtk_table_set_col_spacing (GTK_TABLE (table), 0, 10);
  30.     gtk_table_set_row_spacings (GTK_TABLE (table), 3);
  31.     gtk_container_add (GTK_CONTAINER (window), table);
  32.  
  33.     gtk_container_set_border_width (GTK_CONTAINER (table), 10);
  34.  
  35.     label = gtk_label_new ("Color:");
  36.     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
  37.     picker = gtk_color_button_new ();
  38.     gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 0, 1);
  39.     gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 0, 1);
  40.  
  41.     label = gtk_label_new ("Font:");
  42.     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
  43.     picker = gtk_font_button_new ();
  44.     gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 1, 2);
  45.     gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 1, 2);
  46.  
  47.     label = gtk_label_new ("File:");
  48.     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
  49.     picker = gtk_file_chooser_button_new ("Pick a File", 
  50.                                           GTK_FILE_CHOOSER_ACTION_OPEN);
  51.     gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
  52.     gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 2, 3);
  53.  
  54.     label = gtk_label_new ("Folder:");
  55.     gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
  56.     picker = gtk_file_chooser_button_new ("Pick a Folder", 
  57.                                           GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
  58.     gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
  59.     gtk_table_attach_defaults (GTK_TABLE (table), picker, 1, 2, 3, 4);
  60.   }
  61.  
  62.   if (!GTK_WIDGET_VISIBLE (window))
  63.     {
  64.       gtk_widget_show_all (window);
  65.     }
  66.   else
  67.     {    
  68.       gtk_widget_destroy (window);
  69.       window = NULL;
  70.     }
  71.  
  72.   return window;
  73. }
  74.